home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4 / Atari Forever 4.iso / SERIE_AI / AI_017 / INTERNET.TOS / SOFTWARE / LANCESR / LANCEXB.S < prev    next >
Encoding:
Text File  |  1993-01-17  |  1.6 KB  |  87 lines

  1.  
  2.     .text
  3.     .super
  4.     
  5.     xdef    lnc_install
  6.     xdef    pterm_install
  7.     xdef    memcopy
  8.     xdef    berr_catch
  9.     xdef    berr_tt_catch
  10.     xdef    old_intr
  11.     xref    ext_tab
  12.     xref    new_stack
  13.     xref    old_stack
  14.     xref    old_pterm
  15.     xref    net_reset
  16.     xref    ihandler
  17.     xref    lnc_vector
  18.     xref    memok
  19.     
  20. berr_catch:                    ; bus error handler
  21.     addq.w    #1,memok
  22.     add.l    #8,a7
  23.     rte
  24.  
  25. berr_tt_catch:                    ; bus error handler
  26.     addq.w    #1,memok
  27.     andi.w    #$FEFF,$0A(a7)        ; clear rerun bit
  28.     rte
  29.     
  30. lnc_install:
  31.         movea.l    lnc_vector,a0
  32.         move.l    (a0),old_intr
  33.         move.l    #lance_interrupt,(a0)
  34.         rts
  35.  
  36.         dc.b        'XBRA_PKT'
  37. old_intr:    dc.l    0
  38.  
  39. lance_interrupt:
  40.         move.l    a7,old_stack
  41.         lea        old_stack,a7
  42.         movem.l    d0-a6,-(a7)
  43.         movea.l    ihandler,a0
  44.         beq        nohandler
  45.         jsr        (a0)
  46. nohandler:
  47.         movem.l    (a7)+,d0-a6
  48.         movea.l    old_stack,a7
  49.         rte
  50.  
  51.  
  52. memcopy:
  53.           move.w  a0,d2 
  54.           move.w  a1,d1 
  55.           eor.b   d1,d2 
  56.           btst.l  #0,d2 
  57.           beq     wmove 
  58.           move.w  d0,d1
  59.           tst.w   d1
  60.           beq     done
  61.           subq.w  #1,d1 
  62. bloop:    move.b  (a1)+,(a0)+ 
  63.           dbf     d1,bloop
  64.           bra     done
  65. wmove:    move.w  d0,d1
  66.           tst.w   d1
  67.           beq     done
  68.           move.w  a1,d2 
  69.           btst.l  #0,d2 
  70.           beq     doit
  71.           move.b  (a1)+,(a0)+ 
  72.           subq.l  #1,d1 
  73. doit:     cmpi.w  #1,d1 
  74.           ble     bmove 
  75.           move.w  d1,d0 
  76.           asr.w   #1,d0 
  77.           subq.w  #1,d0 
  78. wloop:    move.w  (a1)+,(a0)+ 
  79.           dbf     d0,wloop
  80. bmove:    btst.l  #0,d1 
  81.           beq     done
  82.           move.b  (a1)+,(a0)+ 
  83. done:     rts 
  84.  
  85. clock:      move.l    $4BA,d0
  86.           rts
  87.